package com.lyx.controller;


import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.lyx.entity.Employee;
import com.lyx.entity.User;
import com.lyx.service.EmpService;
import com.lyx.until.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.List;

/**
 * --- Be Humble and Hungry ---
 *
 * @author McMeloxD
 * @date 2024/8/1
 * @desc 面试信息控制类
 */
@RequestMapping("/emp")
@RestController
public class Empcontroller {
    @Autowired
    private EmpService empService;

    /**
     * 获取所有面试信息
     * @param
     * @return
     */
    @GetMapping("/getInfo")
    public R getInfo(@RequestParam HashMap<String, String> map, HttpSession session) {
        int pageNum = Integer.parseInt(map.get("pageNum"));
        int pageSize = Integer.parseInt(map.get("pageSize"));
        // 1 先设置分页信息
        PageHelper.startPage(pageNum,pageSize);
        // 2 正常执行查询,从session中取出当前登录用户的信息
        User Info = (User)session.getAttribute("userInfo");
        // 根据登录用户身份不同返回不同信息
        List<Employee> list;
        if (Info.getStatus() == 0){
             // 如果登录用户是人事,则返回全部面试信息
             list = empService.findAllInfos();
        }else {
             // 否则只返回等待领导审批的信息
             list = empService.findSpAllInfos();
        }
        // 3 通过查询返回的list创建出分页信息,PageInfo内包含所有分页数据,可以点入源码查看
        PageInfo<Employee> pageInfo = new PageInfo<>(list);
        return R.ok(pageInfo);
    }

    /**
     * 新增面试信息
     * @param infos
     * @return isAdd
     */
    @PostMapping("/addInfo")
    public R addInfo(@RequestBody Employee infos) {
        boolean isAdd = empService.addInfo(infos);
        return R.ok(isAdd);
    }

    /**
     * 删除面试信息
     * @param name
     * @return
     */
    @GetMapping("/delInfo")
    public R delInfo(String name){
        boolean isDel = empService.delInfo(name);
        return R.ok(isDel);
    }

    /**
     * 更新面试信息
     * @param infos
     * @return isAdd
     */
    @PostMapping("/updateInfo")
    public R updateInfo(@RequestBody Employee infos) {
        boolean isUpdate = empService.updateInfo(infos);
        return R.ok(isUpdate);
    }
}
